With the innovation and development of technology, more and more mobile devices have become part of people's daily lives. A person may have a number of mobile devices such as smart phones, tablets, and laptops. With many rich features, functionalities and application programming interfaces built into mobile devices, the creations of applications in mobile devices have become relatively easy and gained popularities to add services and values to mobile devices. It is not uncommon for a mobile device to have dozens of applications installed. At the time of this writing, Apple Inc declares that there are more than 500,000 applications in its App Store, whereas for Goggle Play, it is estimated to have more than 600,000 applications.
Applications in mobile devices can be categorized as games, entertainment, utilities, social networking, music, productivity, lifestyle, reference, travel, sports, navigation, healthcare & fitness, news, photography, finance, business, education, weather, books, medical, and etc. Once applications are installed in mobile devices, they can be running in foreground or background, but may not be aware of situations that their corresponding application servers have immediate application and/or user updates for them to fetch and/or execute. For example, suppose an application service provider find that there is a serious bug in its application that is installed in millions of smart-phones, and publish a patch and notice in its application server. If the owners of the corresponding smart-phones are aware of the bug and notice, they can make their smart-phones and/or the application in their smart-phones connect to the application server, fetch the bug-fix patch and apply the patch. The issue is how to notify all the owners of the corresponding smart-phones or how to notify all the corresponding smart-phones automatically, and during proper time-frame let these smart-phones and/or the application in these smart-phones connect to the application server, fetch the bug-fix patch and apply the patch. Although applications in mobile devices can initiate communication with their corresponding application servers by design such as through http or https interface, it is quite challenging for application servers to initiate communication with their corresponding applications in mobile devices due to security consideration such as firewall protection. In order for applications in mobile devices to get immediate updates from their corresponding application servers, certain communication mechanisms should be established between applications and their corresponding application servers. Traditionally there are two ways to facilitate such communication. One is pull-mode, where applications periodically pull application servers to fetch updates, and/or execute updates. The other is push mode, where application servers push instant notification messages to applications so that applications can connect to application servers, fetch updates, and/or execute updates right away. In the pull-mode mechanism, pulling frequency needs to be high enough to ensure data accuracy and timeliness, which could introduce high network traffic and scalability issue on applications servers. On the other hand, the push-mode mechanism allows instant on-demand notifications from applications servers to applications, therefore avoiding unnecessary network traffic and providing reasonable scalability on applications servers.
Short Messaging service (SMS) is a text messaging service provided by mobile operators for mobile phones. SMS messages and Wireless Application Protocol (WAP) messages on top of SMS bearer can be pushed into mobile phones and then relayed to applications in mobile phones near real-time. Due to the controllability of SMS by mobile operators, mobile device manufacturers and/or mobile operating system providers may build messaging services in their own data networks, instead of depending on messaging services from mobile operators. For example, Apple Inc has provided Apple Push Notification Service (APNS) for its mobile and desktop devices such as iPhone, iPad, and MAC, while Google Inc has implemented Google Cloud Messaging for Android (GCM).
The competitions among mobile device manufacturers and/or mobile operating system providers lead to proprietary protocols and costly implementations for mobile data messaging services. The lack of standardization on mobile data messaging services makes it hard for application service providers to design, implement and deploy their applications on different mobile devices and/or mobile operating systems. Therefore there is a need to provide a cost-effective and flexible solution for messaging services between applications in mobile devices and their corresponding application servers.
Instant messaging is a communication mechanism providing an instantaneous transmission of messages from senders to receivers between people with communication devices. There are a number of instant messaging service providers that have millions of subscribers. The present invention intents to utilize the widely used instant messaging services and provide messaging and updating services over the air from application servers to applications in mobile devices.